165 resultados para Programação (Computadores)

em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul


Relevância:

30.00% 30.00%

Publicador:

Resumo:

A presente Dissertação propõe uma biblioteca de comunicação de alto desempenho, baseada em troca de mensagens, especificamente projetada para explorar eficientemente as potencialidades da tecnologia SCI (Scalable Coherent Interface). No âmago da referida biblioteca, a qual se denominou DECK/SCI, acham-se três protocolos de comunicação distintos: um protocolo de baixa latência e mínimo overhead, especializado na troca de mensagens pequenas; um protocolo de propósito geral; e um protocolo de comunicação que emprega uma técnica de zero-copy, também idealizada neste Trabalho, no intuito de elevar a máxima largura de banda alcançável durante a transmissão de mensagens grandes. As pesquisas desenvolvidas no decurso da Dissertação que se lhe apresenta têm por mister proporcionar um ambiente para o desenvolvimento de aplicações paralelas, que demandam alto desempenho computacional, em clusters que se utilizam da tecnologia SCI como rede de comunicação. A grande motivação para os esforços envidados reside na consolidação dos clusters como arquiteturas, a um só tempo, tecnologicamente comparáveis às máquinas paralelas dedicadas, e economicamente viáveis. A interface de programação exportada pelo DECK/SCI aos usuários abarca o mesmo conjunto de primitivas da biblioteca DECK (Distributed Execution Communication Kernel), concebida originalmente com vistas à consecução de alto desempenho sobre a tecnologia Myrinet. Os resultados auferidos com o uso do DECK/SCI revelam a eficiência dos mecanismos projetados, e a utilização profícua das características de alto desempenho intrínsecas da rede SCI, haja visto que se obteve uma performance muito próxima dos limites tecnológicos impostos pela arquitetura subjacente. Outrossim, a execução de uma clássica aplicação paralela, para fins de validação, testemunha que as primitivas e abstrações fornecidas pelo DECK/SCI mantêm estritamente a mesma semântica da interface de programação do original DECK.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Esta tese de doutorado apresenta o MEPSOM - Método de Ensino de Programação Sônica de Computadores para Músicos. O MEPSOM consiste em um sistema de computação que disponibiliza um conjunto de atividades para programação de software musical composto de exemplos e exercícios. O método foi idealizado para ser uma ferramenta de auxílio ao professor em cursos de Computação Musical, disponibilizando recursos didáticos para o ensino de programação nas áreas de composição e educação musical. O MEPSOM foi implementado sob a forma de programas de computador e utilizado em cursos de Computação Musical na UFRGS. Nesta Tese de Doutorado apresentamos o projeto e a organização do MESPCM, a implementação do método, relatos de sua aplicação e os resultados obtidos. Também expomos a utilização do método em laboratório, através de estudo de caso, e os resultados da sua avaliação por estudantes que participaram de pesquisas de levantamento. Por fim, a partir da análise dos dados obtidos, sugerimos um conjunto de aspectos considerados relevantes para futuras aplicações do MEPSOM.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Computação Móvel é um termo genérico, ainda em definição, ao redor do qual se delineia um espectro de cenários possíveis, desde a Computação Pessoal, com o uso de computadores de mão, até a visão futurista da Computação Ubíqua. O foco do projeto ISAM (Infra-estrutura de Suporte às Aplicações Móveis Distribuída), em desenvolvimento no II/UFRGS, é a Pervasive Computing. Esta desenha um cenário onde o usuário é livre para se deslocar mantendo o acesso aos recursos da rede e ao seu ambiente computacional, todo tempo em qualquer lugar. Esse novo cenário apresenta muitos desafios para o projeto e execução de aplicações. Nesse escopo, esta tese aprofunda a discussão sobre questões relativas à adaptação ao contexto em um ambiente pervasivo sob a ótica de uma Linguagem de Programação, e define uma linguagem chamada ISAMadapt. A definição da linguagem ISAMadapt baseia-se em quatro abstrações: contexto, adaptadores, políticas e comandos de adaptação. Essas abstrações foram concretizadas em duas visões: (1) em tempo de programação, através de comandos da linguagem e arquivos de configuração, descritos com o auxílio do Ambiente de Desenvolvimento de Aplicações; (2) em tempo de execução, através de serviços e APIs fornecidos pelos componentes que integram o ambiente de execução pervasiva (ISAMpe). Deste, os principais componentes que implementam a semântica de execução da aplicação ISAMadapt são: o serviço de reconhecimento de contexto, ISAMcontextService, e a máquina de execução da adaptação dinâmica, ISAMadaptEngine.As principais contribuições desta tese são: (a) primeira linguagem para a codificação de aplicações pervasivas; (b) sintaxe e semântica de comandos para expressar sensibilidade ao contexto pervasivo; (c) fonte para o desenvolvimento de uma metodologia de projeto de aplicações pervasivas; (d) projeto ISAM e o projeto contextS (www.inf.ufrgs.br/~isam) que fornecem suporte para o ciclo de vida das aplicações, desde o desenvolvimento até a execução de aplicações pervasivas.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Esse trabalho de dissertação está incluído no contexto das pesquisas realizadas no Grupo de Processamento Paralelo e Distribuído da UFRGS. Ele aborda as áreas da computação de alto desempenho, interfaces simples de programação e de sistemas de interconexão de redes velozes. A máquina paralela formada por agregados (clusters) tem se destacado por apresentar os recursos computacionais necessários às aplicações intensivas que necessitam de alto desempenho. Referente a interfaces de programação, Java tem se mostrado uma boa opção para a escrita de aplicações paralelas por oferecer os sistemas de RMI e de soquetes que realizam comunicação entre dois computadores, além de todas as facilidades da orientação a objetos. Na área a respeito de interconexão de rede velozes está emergindo como uma tentativa de padronização a nova tecnologia Infiniband. Ela proporciona uma baixa latência de comunicação e uma alta vazão de dados, além de uma série de vantagens implementadas diretamente no hardware. É neste contexto que se desenvolve o presente trabalho de dissertação de mestrado. O seu tema principal é o sistema Aldeia que reimplementa a interface bastante conhecida de soquetes Java para realizar comunicação assíncrona em agregados formados por redes de sistema. Em especial, o seu foco é redes configuradas com equipamentos Infiniband. O Aldeia objetiva assim preencher a lacuna de desempenho do sistema padrão de soquetes Java, que além de usar TCP/IP possui um caráter síncrono. Além de Infiniband, o Aldeia também procura usufruir dos avanços já realizados na biblioteca DECK, desenvolvida no GPPD da UFRGS. Com a sua adoção, é possível realizar comunicação com uma interface Java sobre redes Myrinet, SCI, além de TCP/IP. Somada a essa vantagem, a utilização do DECK também proporciona a propriedade de geração de rastros para a depuração de programas paralelos escritos com o Aldeia. Uma das grandes vantagens do Aldeia está na sua capacidade de transmitir dados assincronamente. Usando essa técnica, cálculos da aplicação podem ser realizados concorrentemente com as operações pela rede. Por fim, os canais de dados do Aldeia substituem perfeitamente aqueles utilizados para a serialização de objetos. Nesse mesmo caminho, o Aldeia pode ser integrado à sistemas que utilizem a implementação de soquetes Java, agora para operar sobre redes de alta velocidade. Palavras-chave: Arquitetura Infiniband, agregado de computadores, linguagem de programação Java, alto desempenho, interface de programação.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho apresenta uma técnica de programação e controle da construção repetitiva denominada Linha de Balanço. E uma técnica, surgida na indústria fabril, onde a produção em série e em grande escala exige a organização dos métodos de produção e a racionalização do trabalho. O estudo, inicialmente, modela o trabalho de construção de unidades repetitivas, salientando os problemas de organização e administração destes empreendimentos. Num segundo momento, são apresentados os princípios teóricos da técnica com aplicações práticas da programação. Por fim, é analisada a metodologia usual de construção de conjuntos habitacionais através de um estudo de caso e, observadas as condições de aplicação da técnica da Linha de Balanço, não exigindo mudificações muito profundas na atual ação gerencial neste tipo de obra. As conclusões esboçadas confirmam as vantagens da técnica da Linha de Balanço para estes empreendimentos e propõem a sua utilização na organização do trabalho nos canteiros repetitivos.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

O modelo de objetos apresenta-se como um modelo promissor para o desenvolvimento de software tolerante a falhas em virtude de características inerentes ao próprio modelo de objetos, tais como abstração de dados, encapsulamento, herança e reutilização de objetos (componentes). O uso de técnicas orientadas a objetos facilita o controle da complexidade do sistema porque promove uma melhor estruturação de seus componentes e também permite que componentes já validados sejam reutilizados [LIS96]. Técnicas básicas para tolerância a falhas em software baseiam-se na diversidade de projeto e de implementação de componentes considerados críticos. Os componentes diversitários são gerenciados através de alguma técnica que tenha por objetivo assegurar o fornecimento do serviço solicitado, como, por exemplo, a conhecida técnica de blocos de recuperação. Reflexão Computacional é a capacidade que um sistema tem de fazer computações para se auto analisar. Ela é obtida quando o programa pára sua execução por um período de tempo para fazer computações sobre si próprio; analisa seu estado, se o processamento está correto, se pode prosseguir com a execução e atingir o objetivo satisfatoriamente; se não precisa mudar de estratégia ou algoritmo de execução, fazendo, ainda, processamentos necessários para o sucesso da execução. Um sistema de programação distribuída consiste basicamente em vários aplicativos executados em diferentes computadores, os quais realizam troca de mensagens para solucionar um problema comum. A comunicação entre os computadores é realizada através da rede que os interliga. As Redes que controlam sistemas críticos são normalmente de pequena escala pois redes de grandes dimensões podem apresentar atrasos e baixa confiabilidade. Portanto, a abordagem aqui proposta consiste em utilizar, em um ambiente distribuído, uma arquitetura reflexiva aliada a técnicas do domínio da tolerância a falhas para promover a separação entre as atividades de controle, salvamento, recuperação, distribuição e validação de componentes e as funcionalidades executadas pelo próprio componente, a fim de que falhas não venham a prejudicar a disponibilidade, confiabilidade e clareza de determinadas computações. A proposta apóia-se num estudo de caso, implementado na linguagem de programação Java, com seus protocolos de reflexão computacional e de comunicação.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho define e implementa um sistema de controle de consumo para redes de computadores, objetivando aumentar o tempo de operação da rede em caso de operação com recursos limitados e redução de consumo de energia em situações de fornecimento normal. Na definição do sistema, denominado NetPower, foi estabelecida uma estrutura através da qual um gerente (coordenador) monitora as atividades dos equipamentos vinculados à rede, e determina alterações nos estados de consumo respectivos, de acordo com as necessidades ou atendimento de padrões de otimização. Aos equipamentos podem ser atribuídos diferentes privilégios em uma hierarquia adaptável a diversos ambientes. Um reserva oferece opção às falhas do gerente. A implementação está baseada no protocolo SNMP (Simple Network Management Protocol) para a gerência e são considerados preponderantemente os padrões para controle de consumo dos equipamentos Advanced Power Management, APM, e Advanced Configuration and Power Interface Specification, ACPI. Além da arquitetura do gerente e dos agentes, foi definida também uma MIB (Management Information Base) para controle de consumo. No projeto do sistema, foi privilegiado o objetivo de utilização em qualquer ambiente de rede, sem preferência por equipamentos de algum fabricante específico ou por arquitetura de hardware. Tecnologias de domínio público foram utilizadas, quando possível. No futuro este sistema pode fazer parte da distribuição de sistemas operacionais, incorporando controle de consumo às redes. No texto é feita uma comparação entre os softwares existentes para controle de consumo, são apresentados os recursos de controle de consumo disponíveis nos equipamentos de computação, seguido da descrição do protocolo de gerência utilizado. Em seguida, é apresentada a proposta detalhada do sistema de controle e descrita da implementação do protótipo.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

O gerenciamento de redes de computadores é uma tarefa complexa de ser realizada porque a redes atualmente possuem muitos equipamentos, protocolos, serviços e usuários. Como regra geral, redes de computadores são heterogêneas e a introdução de facilidades para o fornecimento de qualidade de serviço (QoS) faz com que a gerência de redes se torne ainda mais complexa, e neste cenário as soluções tradicionais de gerenciamento podem falhar. O gerenciamento de redes com QoS vem sendo investigado por diversos grupos, e soluções comerciais para o problema já podem ser encontradas. Entretanto, a gerência de QoS possui aspectos diversos que são investigados separadamente. Do ponto de vista do administrador de redes, soluções pontuais são importantes, mas a integração entre os diversos aspectos de gerência de QoS também é uma necessidade. Tal necessidade, entretanto, não tem encontrado respaldo nas pesquisas desenvolvidas ou nos produtos de gerenciamento disponibilizados no mercado. Nesta situação, o administrador da rede é obrigado a trabalhar ao mesmo tempo com soluções disjuntas que não oferecem integração. Isso acaba por complicar a gerência de QoS, que por si só já é uma atividade complexa. QoS e discutida a necessidade de integração. As soluções existentes e pesquisas desenvolvidas são classificadas para que possam ser mais bem avaliadas em uma visão mais global. A classificação realizada organiza os aspectos de QoS em tarefas de gerência de QoS que devem ser executadas por um administrador de redes que possuam facilidades de QoS. Para que a integração das tarefas de gerência de QoS seja possível, um modelo para gerência integrada de QoS em redes de computadores é proposto. O modelo, definido em camadas, utiliza elementos distribuídos na rede para executar tarefas específicas e um ambiente de gerência central fornece uma interface única de acesso ao sistema de gerência ao administrador da rede. O modelo proposto é analisado de acordo com alguns aspectos (por exemplo, em relação à sua escalabilidade, flexibilidade e exeqüibilidade). Uma implementação do mesmo é apresentada para a gerência de redes baseadas em IP que possuam mecanismos para fornecimento de QoS. A avaliação do modelo mostra, ao final, que a gerência de QoS, além de ser uma necessidade real, é possível de ser executada de forma integrada, como desejam os administradores de rede.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Atualmente, a sociedade tem experimentado uma grande transformação devido à crescente incorporação da tecnologia em seu cotidiano. Estas mudanças demonstram o grande avanço tecnológico experimentado nas últimas décadas, principalmente na área de Redes e Telecomunicações. Este contexto tem gerado uma crescente procura por profissionais desta área, com um perfil que privilegie, além do conhecimento técnico, outras habilidades consideradas importantes, como o pensamento crítico, o auto-aprendizado e a habilidade para trabalhar em equipe, habilidades estas que não são normalmente focadas nos cursos atuais. Estas habilidades são estimuladas nas abordagens centradas nos alunos, com destaque ao Problem-Based Learning (PBL), uma abordagem na qual o aluno é exposto a problemas, sem nenhum conhecimento prévio, e que, para resolvê-los, precisa pesquisar e analisar novas informações, visando sua aplicação na solução dos mesmos. Apesar da grande utilização do PBL em diversas instituições no mundo, existem poucas ferramentas de software que dão apoio para sua total aplicação. Por outro lado, mesmo sendo bem estruturado, o PBL não sugere indicações de como assimilar melhor novas experiências, de como buscar o conhecimento em experiências anteriores e como desenvolver problemas atuais e interessantes com características reais. Estas dificuldades podem ser minimizadas com a utilização do CBR (Case-Based Reasoning). Entre as aplicações CBR desenvolvidas especificamente na área de Redes de Computadores, pode-se destacar o sistema DUMBO, um sistema CBR, desenvolvido na UFRGS, especificamente para o diagnóstico de problemas em Redes de Computadores. A integração com o DUMBO permite à abordagem PBL ser aplicada com maior eficiência, utilizando sua biblioteca de casos como ferramenta de pesquisa e para a sugestão de novos problemas a partir de casos reais e atuais. Com base nestas afirmações, este trabalho apresenta a proposta e o desenvolvimento de um protótipo de ambiente de aprendizado para o ensino de Redes de Computadores, utilizando a abordagem PBL em conjunto com a abordagem CBR através do sistema DUMBO.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

No projeto de arquiteturas computacionais, a partir da evolução do modelo cliente-servidor, surgiram os sistemas distribuídos com a finalidade de oferecer características tais como: disponibilidade, distribuição, compartilhamento de recursos e tolerância a falhas. Estas características, entretanto, não são obtidas de forma simples. As aplicações distribuídas e as aplicações centralizadas possuem requisitos funcionais distintos; aplicações distribuídas são mais difíceis quanto ao projeto e implementação. A complexidade de implementação é decorrente principalmente da dificuldade de tratamento e de gerência dos mecanismos de comunicação, exigindo equipe de programadores experientes. Assim, tem sido realizada muita pesquisa para obter mecanismos que facilitem a programação de aplicações distribuídas. Observa-se que, em aplicações distribuídas reais, mecanismos de tolerância a falhas constituem-se em uma necessidade. Neste contexto, a comunicação confiável constitui-se em um dos blocos básicos de construção. Paralelamente à evolução tanto dos sistemas distribuídos como da área de tolerância a falhas, foi possível observar também a evolução das linguagens de programação. O sucesso do paradigma de orientação a objetos deve-se, provavelmente, à habilidade em modelar o domínio da aplicação ao invés da arquitetura da máquina em questão (enfoque imperativo) ou mapear conceitos matemáticos (conforme o enfoque funcional). Pesquisadores demonstraram que a orientação a objetos apresenta-se como um modelo atraente ao desenvolvimento de aplicações distribuídas modulares e tolerantes a falhas. Diante do contexto exposto, duas constatações estimularam basicamente a definição desta dissertação: a necessidade latente de mecanismos que facilitem a programação de aplicações distribuídas tolerantes a falhas; e o fato de que a orientação a objetos tem-se mostrado um modelo promissor ao desenvolvimento deste tipo de aplicação. Desta forma, nesta dissertação definem-se classes para a comunicação do tipo unicast e multicast, nas modalidades de envio confiável e não-confiável. Além destes serviços de comunicação básicos, foram desenvolvidas classes que permitem referenciar os participantes da comunicação através de nomes. As classes estão organizadas na forma de um pacote, compondo um framework. Sua implementação foi desenvolvida usando Java. Embora não tivessem sido requisitos básicos, as opções de projeto visaram assegurar resultados aceitáveis de desempenho e possibilidade de reuso das classes. Foram implementados pequenos trechos de código utilizando e testando a funcionalidade de cada uma das classes de comunicação propostas.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Problemas de escalonamento ocorrem com freqüência, principalmente em empresas de manufatura. Entretanto, na maioria das vezes, ferramentas matemáticas de apoio à decisão são pouco utilizadas, pois requerem profissionais capacitados, softwares caros e computadores muito potentes. Esta dissertação tem como objetivo mostrar uma heurística capaz de reduzir a quantidade de fôrmas na indústria calçadista. Inicialmente, foram comparadas as soluções fornecidas pela heurística com as soluções obtidas a partir do modelo matemático de programação linear, com a finalidade de verificar o quão próximas estão ambas as respostas. Em seguida, foram comparadas a solução fornecida pela heurística e a solução presentemente adotada por uma empresa de calçados denominada de Empresa de Calçados X. Os principais resultados obtidos foram: a) o resultado fornecido pela heurística apresenta menos de 10% de acréscimo no número de pares de fôrmas em relação ao resultado fornecido pelo modelo matemático de programação linear inteira tipo 0/1; b) a solução fornecida pela heurística reduz, em média, 23,4% a quantidade de fôrmas necessárias, podendo chegar próximo a 40%. Isto pode trazer uma estimativa de redução anual na ordem de R$ 288.100,00; c) o percentual de redução na quantidade de pares de fôrmas é variável, dependendo de cada caso.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

A área de gerência de rede cresce à medida que redes mais seguras e menos vulneráveis são necessárias, e as aplicações que concorrem pelo seu uso, necessitam de alta disponibilidade e qualidade de serviço. Quando estamos focando a gerência da infra-estrutura física das redes de computadores, por exemplo, a taxa de uso de um segmento de rede, podemos dizer que esse tipo de gerenciamento encontra-se em um patamar bastante sedimentado e testado. Por outro lado, há ainda lacunas para pesquisar na área de gerenciamento de protocolos de alto nível. Entender o comportamento da rede como um todo, conhecer quais hosts mais se comunicam, quais aplicações geram mais tráfego e, baseado nessas estatísticas, gerar uma política para a distribuição de recursos levando em consideração as aplicações críticas é um dever nas redes atuais. O grupo de trabalho IETF RMON padronizou, em 1997, a MIB RMON2. Ela foi criada para permitir a monitoração de protocolos das camadas superiores (rede, transporte e aplicação), a qual é uma boa alternativa para realizar as tarefas de gerenciamento recém mencionadas. Outro problema para os gerentes de rede é a proliferação dos protocolos de alto nível e aplicações corporativas distribuídas. Devido a crescente quantidade de protocolos e aplicações sendo executados sobre as redes de computadores, os softwares de gerenciamento necessitam ser adaptados para serem capazes de gerenciá-los. Isso, atualmente, não é fácil porque é necessário usar linguagens de programação de baixo nível ou atualizar o firmware dos equipamentos de monitoração, como ocorre com os probes RMON2. Considerando este contexto, esse trabalho propõe o desenvolvimento de um agente RMON2 que contemple alguns grupos dessa MIB. O agente baseia-se na monitoração protocolos de alto nível e aplicações que são executados sobre o IP (Internet Protocol) e Ethernet (na camada de enlace). Além da implementação do agente, o trabalho apresenta um estudo de como obter estatísticas do agente RMON2 e usá-las efetivamente para gerenciar protocolos de alto nível e aplicações.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

O processo de programação de recursos é parte do planejamento e controle da produção e possui grande importância para o desempenho de empreendimentos de construção. Constitui-se numa atividade multifuncional, envolvendo a direção da empresa e seus departamentos de marketing, finanças, recursos humanos e suprimentos. Sua ineficácia tem sido identificada como responsável por muitos dos problemas relacionados à dilatação do prazo de execução do empreendimento, ao desperdício de recursos e à baixa produtividade da mão-de-obra. Considerando que o desempenho da programação de recursos está fortemente relacionado à quantidade e qualidade das informações que a suportam, o presente trabalho tem como objetivo a proposição de um método de intervenção direcionado ao sistema de informação deste processo. O método proposto divide-se em duas etapas: o diagnóstico inicial do sistema de informações e, posteriormente, o planejamento e implantação de ações de melhoria. O método foi aplicado em estudos de caso realizados em empresas de pequeno porte, nas quais foi implementada a programação formal de recursos, sendo constatada a mudança de atitude dos funcionários frente aos processos de planejamento da produção e programação de recursos.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho descreve uma implementação de um modelo de escalonamento para a linguagem de programação DPC++. Esta linguagem, desenvolvida no Instituto de Informática da UFRGS, possibilita que uma aplicação orientada a objetos seja distribuída entre vários processadores através de objetos distribuídos. Muito mais que uma simples biblioteca de comunicação, o DPC ++ torna a troca de mensagens totalmente transparente aos objetos. A integração do DPC++ com o DECK, também em desenvolvimento, trará grandes inovações ao DPC++, principalmente pelo uso de theads. O escalonador proposto para este modelo utiliza estes recursos para implantar os chamados processos espiões, que monitoram a carga de uma máquina, enviando seus resultados ao escalonador. O escalonador implementado possui, desta forma, dois módulos: objetos espiões implementados como um serviço do DECK e o escalonador propriamente dito, incluído no objeto Diretório, parte integrante do DPC++.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho descreve a aplicação da Programação Genética, uma técnica de Computação Evolucionária, ao problema da Síntese de Fala automática. A Programação Genética utiliza as técnicas da evolução humana para descobrir programas bem adaptados a um problema específico. Estes programas, compostos de instruções, variáveis, constantes e outros elementos que compõe uma linguagem de programação, são evoluídos ao longo de um conjunto de gerações. A Síntese de Fala, consiste na geração automática das formas de ondas sonoras a partir de um texto escrito. Uma das atividades mais importantes, é realizada através da conversão de palavras e letras para os sons da fala elementares (fonemas). Muitos sistemas de síntese são implementados através de regras fixas, escritas por programadores humanos. Um dos mais conhecidos sistemas de síntese é o FESTIVAL, desenvolvido pela Universidade de Edimburgh, usando a linguagem de programação funcional LISP e um número fixo de regras. Neste trabalho, nós exploramos a possibilidade da aplicação do paradigma da Programação Genética, para evoluir automaticamente regras que serão adotadas para implementação do idioma Português na ferramenta FESTIVAL, desenvolvido no projeto SPOLTECH (CNPq – NSF cooperação entre UFRGS e Universidade do Colorado). A modelagem do problema, consiste na definição das regras de pronúncia do Português Brasileiro, que a implementação do sistema FESTIVAL pronuncia erradamente, já que o mesmo foi implementado primariamente para o idioma Inglês. A partir destas regras, o sistema de Programação Genética, desenvolvido neste trabalho, evolui programas que constituem boas soluções para a conversão de letras para fonemas. A descrição dos resultados obtidos, cobre detalhes sobre a evolução das soluções, complexidade e regras implementadas, representadas pelas soluções mais bem adaptadas; mostrando que a Programação Genética, apesar de ser complexa, é bastante promissora.